<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Git学习笔记</title>
    <link rel="stylesheet" href="./gitcontent.css">
</head>
<body>
    <div class="container">
        <header>
            Git 学习笔记
        </header>
        <article>
            <h2>七、使用GitHub进行团队协作</h2>
            <section>
                <h3>创建团队项目</h3>
                <ul>
                    <li>
                        <ol>
                            <li>跟新建个人项目类似，Owner 选择组织</li>
                            <li>权限设置 -> settings -> collaborators & teams 再进行相应的操作</li>  
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>怎样选择适合自己团队的工作流?</h3>
                <ul>
                    <li>
                        <h4>考虑因素</h4>
                        <ol>
                            <li>团队人员的组成</li>
                            <li>研发设计能力</li>
                            <li>输出产品的特征</li>
                            <li>项目难以程度</li>
                        </ol>
                    </li>
                    <li>
                        <h4>主干开发</h4>
                        适用于：
                        <ol>
                            <li>
                                组件开发的团队，成员能力强，人员少，沟通顺畅，用户升级组件成本低的环境。
                            </li>
                            <li>
                                开发团队系统设计和开发能力强，有一套有效的特性切换的实施机制，保证上线后无需修改代码就能够修改系统行为，
                                需要快速迭代，想获取 CI / CD 所有好处。
                            </li>
                        </ol>
                    </li>
                    <li>
                        <h4>Git Flow</h4>
                        适用于：
                        <ol>
                            <li>不具备主干开发能力，有预定的开发周期，需要执行严格的的发布流程。</li> 
                        </ol>
                    </li>
                    <li>
                        <h4>GitHub Flow</h4>
                        适用于：
                        <ol>
                            <li>不具备主干开发能力。随时集成随时发布：分支集成时经过代码评审和自动化测试，就可以立即发布的应用。</li> 
                        </ol>
                    </li>
                    <li>
                        <h4>GitLab Flow（带生产分支）</h4>
                        适用于：
                        <ol>
                            <li>不具备主干开发能力。无法控制准确的发布时间，但又要求不停的集成。</li> 
                        </ol>
                    </li>
                    <li>
                        <h4>GitLab Flow（带环境分支）</h4>
                        适用于：
                        <ol>
                            <li>不具备主干开发能力。需要逐个通过各个测试环境验证才能发布。</li> 
                        </ol>
                    </li>
                    <li>
                        <h4>GitLab Flow（带发布分支）</h4>
                        适用于：
                        <ol>
                            <li>不具备主干开发能力。需要对外发布和维护不同版本。</li> 
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>如何挑选合适的分支集成策略？</h3>
                <ul>
                    <li>
                        <h4>Settings（选择一种 方式或者 全选）</h4>
                        <p>Allow merge commits（分支会 合并 到 master 主干上，并只提交一次commit）</p>
                        <p>Allow squash merging（分支变更集合后 合并 并 提交 到主干）</p>
                        <p>Allow rebase merging（按分支上的变更数提交到主干，提交数跟分支变更数一样）</p>
                    </li>
                    <li>
                        <h4>操作步骤</h4>
                        <ol>
                            <li>Pull requests</li>
                            <li>New pull request</li>
                            <li>选择 特性分支</li>
                            <li>Create pull request</li>
                            <li>选择 merge 方式</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>启用 issue 跟踪需求和任务</h3>
                <ul>
                    <li>
                        <ol>
                            <li>描述：babel，可以交流等</li>
                            <li>Settings -> issues(选择）</li>
                            <li>Issues -> New issue ->get start</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>如何用 project 管理 issue？</h3>
                <ul>
                    <li>
                        ?
                    </li>
                </ul>
            </section>
            <section>
                <h3>项目内部怎么实施code review</h3>
                <ul>
                    <li>
                        描述：集成分支代码质量的保证设置
                        <ol>
                            <li>Settings -> Branches -> Add rule</li>
                            <li>分支名，规则</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>团队协作时如何做分支集成</h3>
                <ul>
                    <li>
                        内容多
                    </li>
                </ul>
            </section>
            <section>
                <h3>怎样保证集成的质量</h3>
                <ul>
                    <li></li>
                </ul>
            </section>
            <section>
                <h3>怎样把产品发布到 GitHub上</h3>
                <ul>
                    <li>
                        描述：
                        <ol>
                            <li>Code -> releases</li>
                        </ol>
                    </li>
                </ul>
            </section>
            <section>
                <h3>怎么给项目增加详细的指导文档</h3>
                <ul>
                    <li>Wiki</li>
                </ul>
            </section>
        </article>
    </div>
</body>
</html>